package com.service;

import com.entity.GroupUser;

import java.util.List;

public interface GroupUserService {
    /**
     * 按照id查询群成员信息
     * @param id
     * @return
     */
    GroupUser getById(Integer id);
    /**
     * 按照用户id查询群，群成员信息
     * @param userId
     * @return
     */
    List<GroupUser> getGroupUserByUserId(Integer userId);

    /**
     * 按照群id查询所有群成员信息
     * @param groupId
     * @return
     */
    List<GroupUser> getAllByGroupId(Integer groupId);

    /**
     * 查询未读消息数量
     * @param userId
     * @param groupId
     * @return
     */
    Integer getNotReadCount(Integer userId, Integer groupId);

    /**
     * 按照用户id与群id修改群未读消息
     * @param notReadCount
     * @param userId
     * @param groupId
     */
    void editNotReadCount(Integer notReadCount,Integer userId, Integer groupId);
    /**
     * 添加群成员
     *
     * @param userId 用户ID
     * @param groupInfoId 群ID
     * @return Boolean
     */
    Boolean addGroupUser(Integer userId, Integer groupInfoId);

    /**
     * 修改信息
     * 可改：群备注、禁言、群角色
     *
     * @param groupUser 成员信息
     * @return Boolean
     */
    Boolean editGroupUser(GroupUser groupUser);

    /**
     * 群主转让
     *
     * @param groupUserIdMaster 群主的成员ID
     * @param groupUserIdServant 转让的成员ID
     * @return
     */
    Boolean editRoleTransfer(Integer groupUserIdMaster,Integer groupUserIdServant);

    /**
     * 根据ID删除
     * @param groupUserId ID
     * @return Boolean
     */
    Boolean delByIdGroupUser(Integer groupUserId);

}
